Computer applications employ user interfaces to allow human users to communicate commands to the application and receive outputs from the application. Some user interfaces are specifically designed to accommodate a user's preferences or cognitive abilities. For instance, some GUIs order and arrange fields for input and presentation of data to appeal to users' intuitive visual preferences or to be otherwise visually pleasing to users. Some GUIs are capable of accepting inputs from peripheral hardware, such as keyboards, computer mice, joysticks, and touch-screens. Some GUIs are designed to accommodate learning and physical disabilities, for example, by allowing speech-based inputs through a microphone connected to the computing device. Other user interfaces also exist, including audio interfaces that accept speech-based inputs and present audio outputs. For instance, some automated phone systems implement speech-based user interfaces allowing a user to access a computer application, input requests to the application, and receive audio outputs from the application through a telephone device.
Some applications have been developed with parallel graphic and speech-based user interfaces. These can be used to expand an application to the visually impaired and other segments of an application's market. Typically, the graphic and speech-based interfaces are developed independently. Often, a speech-based interface equivalent of an application's graphic user interface is developed long after the emergence of the application and its GUI. Development of the speech-based interface involves hard-coding the audio-based inputs and outputs, and logic for the speech-based interface separately, in an attempt to duplicate the functions of the original graphic interface.